<!DOCTYPE html>
<html lang='en'>

<head>
    <meta charset='UTF-8'>
    <meta name='viewport' content='width=device-width, initial-scale=1.0'>
    <title>Document</title>
    <script src='./vue.js'></script>
</head>

<body>
    <div id='app'>

        <!-- 如果该元素已经有了 class 属性那么这里会进行合并 -->
        <div class="abc" :class="classStr"> 你好世界 </div>

        <!-- 
            可以通过一个对象来绑定 class,对象中属性值是 true 该属性就会是 class 名称
            如果属性值是 false 那么就不会做添加。属性对应的值是一个布尔类型的值
         -->
        <div :class="{ active: true, flag: false }"> 锄禾日当午 </div>

        <!-- 通过对象进行绑定的时候，对象属性值发生变化对其也会有影响 -->
        <div :class="classObj"> 通过对象进行绑定 </div>
        <button @click="classObj.blue = true">点击修改 classObj</button>

        <div :class="classArr"> 通过数组进行绑定 </div>

        <!-- --------------------------------------- -->
        <hr>

        <div style="color: red;"> 绑定样式 </div>

        <div :style="styleText"> 通过字符串绑定样式 </div>
        <div :style="styleObj"> 通过对象绑定样式 </div>
        <div :style="styleArr"> 通过数组绑定样式 </div>


        <!-- -------------------------------------- -->
        <hr>
        <button @click="attr = 'title'">修改属性</button>
        <!-- 动态改变属性 -->
        <img :[attr]="src" alt="">

        <hr>
        <button @click="props='class'">切换属性</button>
        <h1 :[props]="'bpp'">说真话难听，说假话虚伪</h1>


    </div>
</body>
<script>
    const app = {
        data() {
            return {
                classStr: 'box',
                classObj: {
                    red: true,
                    blue: false
                },
                classArr: ['box', 'cell', 'abc'],
                styleText: 'color: red;',
                styleObj: {
                    color: 'blue',
                    // fontSize: '30px'
                    // 'font-size': '30px'
                    'fontSize': '30px'
                },
                styleArr: [
                    'color: red',
                    'fontSize: 30px'
                ],
                attr: 'src',
                src: 'https://gimg3.baidu.com/search/src=http%3A%2F%2Fpics1.baidu.com%2Ffeed%2F3bf33a87e950352adf9d9a00477c53ffb3118b82.jpeg%40f_auto%3Ftoken%3Deba35c632f5af60f817626109756faa4&refer=http%3A%2F%2Fwww.baidu.com&app=2021&size=f360,240&n=0&g=0n&q=75&fmt=auto?sec=1709744400&t=b10a95a10ee54aebf09ee586c2b81bfb',
                props: 'id'
            }
        },
        methods: {},
    }
    const vm = Vue.createApp(app).mount('#app')
</script>

</html>